package com.samp.solr.hanlp;

import java.io.BufferedReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

import com.hankcs.hanlp.HanLP;
import com.hankcs.hanlp.mining.word.WordInfo;

/**
 * 关键字提取，内部采用TextRankKeyword实现，用户可以直接调用TextRankKeyword.getKeywordList(document, size)
 */
public class ExtractWords {
	
	public static void extractWords(){
		String rawpath = "D:\\temp\\docs\\001.txt";
		try {
			BufferedReader br = Files.newBufferedReader(Paths.get(rawpath));
			List<WordInfo>  list = HanLP.extractWords(br, 100,true);
			for( WordInfo wordInfo : list ){
				System.out.println(wordInfo);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void extractWords(List<String> list){
	    for(String s: list){
            List<String> keywordList = HanLP.extractKeyword(s, 5);
            System.out.println(keywordList);
        }
    }

	public static void main(String[] args) {
//		extractWords();
        List<String> list = new ArrayList<>();
        list.add("程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员，但两者的界限并不非常清楚，特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员和项目经理四大类。");
        extractWords(list);
	}

}
